package com.wenx.genericity;

import java.util.List;

/**
 * 实现最小值函数
 * 自己设计一个泛型的获取数组最小值的函数.并且这个方法只能接受Number的子类并且实现了Comparable接口。
 * Created by wenx on 2019-10-11 11:31
 */
public class MinTest {
    public static void main(String[] args) {
        getMin(new Integer[]{3,1,4,2});
    }

    static <T extends Number & Comparable<? super T>> T getMin(T[] arrays) {
        if(arrays == null || arrays.length == 0)
            return null;
        T min = arrays[0];
        for(int i = 1;i<arrays.length;i++) {
            if(min.compareTo(arrays[i]) > 0) {
                min = arrays[i];
            }
        }
        System.out.println("min = " + min);
        return min;
    }

    static <T extends Number & Comparable<? super T>> T getMin(List<T> lists) {
        if(lists == null || lists.size() == 0) return null;
        T min = lists.get(0);
        return min;
    }

}